﻿

//using System;
//using System.Text;

//namespace TestReferenceEquality
//{
//    class Program
//    {
//        static void Main()
//        {
//            ////---------------------------------------------- C#中如何把整形值 转换成字节数组，然后再转回整形
//            ////https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/types/how-to-convert-a-byte-array-to-an-int?view=azure-dotnet

//            //int number = 42;

//            //// 将整数转换为字节数组
//            //byte[] bytes = BitConverter.GetBytes(number);

//            //// 将字节数组转换回整数
//            //int number2 = BitConverter.ToInt32(bytes, 0);


//            ////---------------------------------------------- C# 中如何将字符串 转换成字节数组 ,然后再转回字符串
//            //string str = "Hello, World!";

//            //// 将字符串转换为字节数组
//            //byte[] bytes2= Encoding.UTF8.GetBytes(str);

//            //// 将字节数组转换回字符串
//            //string str2 = Encoding.UTF8.GetString(bytes2);

//            ////---------------------------------------------- 如何将字符串转换为数字（C# 编程指南）
//            ////https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/types/how-to-convert-a-string-to-a-number?view=azure-dotnet

//            //string input = String.Empty;
//            //try
//            //{
//            //    int result = Int32.Parse(input);
//            //    Console.WriteLine(result);
//            //}
//            //catch (FormatException)
//            //{
//            //    Console.WriteLine($"Unable to parse '{input}'");
//            //}
//            //// Output: Unable to parse ''

//            //try
//            //{
//            //    int numVal = Int32.Parse("-105");
//            //    Console.WriteLine(numVal);
//            //}
//            //catch (FormatException e)
//            //{
//            //    Console.WriteLine(e.Message);
//            //}
//            //// Output: -105

//            //if (Int32.TryParse("-105", out int j))
//            //{
//            //    Console.WriteLine(j);
//            //}
//            //else
//            //{
//            //    Console.WriteLine("String could not be parsed.");
//            //}
//            //// Output: -105

//            //try
//            //{
//            //    int m = Int32.Parse("abc");
//            //}
//            //catch (FormatException e)
//            //{
//            //    Console.WriteLine(e.Message);
//            //}
//            //// Output: Input string was not in a correct format.

//            //const string inputString = "abc";
//            //if (Int32.TryParse(inputString, out int numValue))
//            //{
//            //    Console.WriteLine(numValue);
//            //}
//            //else
//            //{
//            //    Console.WriteLine($"Int32.TryParse could not parse '{inputString}' to an int.");
//            //}
//            //// Output: Int32.TryParse could not parse 'abc' to an int.


//            //var str = "  10FFxxx";
//            //string numericString = string.Empty;
//            //foreach (var c in str)
//            //{
//            //    // Check for numeric characters (hex in this case) or leading or trailing spaces.
//            //    if ((c >= '0' && c <= '9') || (char.ToUpperInvariant(c) >= 'A' && char.ToUpperInvariant(c) <= 'F') || c == ' ')
//            //    {
//            //        numericString = string.Concat(numericString, c.ToString());
//            //    }
//            //    else
//            //    {
//            //        break;
//            //    }
//            //}

//            //if (int.TryParse(numericString, System.Globalization.NumberStyles.HexNumber, null, out int i))
//            //{
//            //    Console.WriteLine($"'{str}' --> '{numericString}' --> {i}");
//            //}
//            //// Output: '  10FFxxx' --> '  10FF' --> 4351

//            //str = "   -10FFXXX";
//            //numericString = "";
//            //foreach (char c in str)
//            //{
//            //    // Check for numeric characters (0-9), a negative sign, or leading or trailing spaces.
//            //    if ((c >= '0' && c <= '9') || c == ' ' || c == '-')
//            //    {
//            //        numericString = string.Concat(numericString, c);
//            //    }
//            //    else
//            //    {
//            //        break;
//            //    }
//            //}

//            //if (int.TryParse(numericString, out int j))
//            //{
//            //    Console.WriteLine($"'{str}' --> '{numericString}' --> {j}");
//            //}
//            //// Output: '   -10FFXXX' --> '   -10' --> -10

//            //---------------------------------------------- 如何在十六进制字符串与数值类型之间转换（C# 编程指南）

//            string input = "Hello World!";
//            char[] values = input.ToCharArray();
//            foreach (char letter in values)
//            {
//                // Get the integral value of the character.
//                int value = Convert.ToInt32(letter);
//                // Convert the integer value to a hexadecimal value in string form.
//                Console.WriteLine($"Hexadecimal value of {letter} is {value:X}");
//            }
//            /* Output:
//                Hexadecimal value of H is 48
//                Hexadecimal value of e is 65
//                Hexadecimal value of l is 6C
//                Hexadecimal value of l is 6C
//                Hexadecimal value of o is 6F
//                Hexadecimal value of   is 20
//                Hexadecimal value of W is 57
//                Hexadecimal value of o is 6F
//                Hexadecimal value of r is 72
//                Hexadecimal value of l is 6C
//                Hexadecimal value of d is 64
//                Hexadecimal value of ! is 21
//             */

//            //string hexValues = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21";
//            //string[] hexValuesSplit = hexValues.Split(' ');
//            //foreach (string hex in hexValuesSplit)
//            //{
//            //    // Convert the number expressed in base-16 to an integer.
//            //    int value = Convert.ToInt32(hex, 16);
//            //    // Get the character corresponding to the integral value.
//            //    string stringValue = Char.ConvertFromUtf32(value);
//            //    char charValue = (char)value;
//            //    Console.WriteLine("hexadecimal value = {0}, int value = {1}, char value = {2} or {3}",
//            //                        hex, value, stringValue, charValue);
//            //}
//            /* Output:
//                hexadecimal value = 48, int value = 72, char value = H or H
//                hexadecimal value = 65, int value = 101, char value = e or e
//                hexadecimal value = 6C, int value = 108, char value = l or l
//                hexadecimal value = 6C, int value = 108, char value = l or l
//                hexadecimal value = 6F, int value = 111, char value = o or o
//                hexadecimal value = 20, int value = 32, char value =   or
//                hexadecimal value = 57, int value = 87, char value = W or W
//                hexadecimal value = 6F, int value = 111, char value = o or o
//                hexadecimal value = 72, int value = 114, char value = r or r
//                hexadecimal value = 6C, int value = 108, char value = l or l
//                hexadecimal value = 64, int value = 100, char value = d or d
//                hexadecimal value = 21, int value = 33, char value = ! or !
//            */
//            string hexValues = "48 65 6C 6C 6F 20 57 6F 72 6C 64 21";
//            string[] hexValuesSplit = hexValues.Split(' ');
//            StringBuilder stringBuilder = new StringBuilder();
//            foreach (string hex in hexValuesSplit)
//            {
//                // Convert the number expressed in base-16 to an integer.
//                // 此示例演示了将十六进制 string 转换为整数的另一种方法，即调用 Parse(String, NumberStyles) 方法。
//                int value = Int32.Parse(hex, System.Globalization.NumberStyles.HexNumber); ;
//                // Get the character corresponding to the integral value.
//                string stringValue = Char.ConvertFromUtf32(value);
//                char charValue = (char)value;
//                stringBuilder.Append(stringValue);
//                Console.WriteLine("hexadecimal value = {0}, int value = {1}, char value = {2} or {3}",
//                                    hex, value, stringValue, charValue);
//            }
//            Console.WriteLine(stringBuilder.ToString());
//            Console.ReadKey();

//        }

//    }
//}
